#!/bin/bash

# This is a networkd-dispatcher script for chronyd to handle its NTP
# sources. It sets the NTP sources online or offline when a network
# interface is configured or removed. On DHCP change, chrony will
# update its NTP sources passed from DHCP options.

export LC_ALL=C

DHCP_SERVER_FILE={{ server_dir }}/chrony.servers.$IFACE

add_servers_from_dhcp() {
    if [ -f "$DHCP_SERVER_FILE" ]; then
        rm -f "$DHCP_SERVER_FILE"
    fi
    echo "$json" | jq -r 'select(.NTP !=null) .NTP[]' >> $DHCP_SERVER_FILE
    {{ chrony_helper_dir }}/chrony-helper update-daemon || :
}

if [ "$STATE" = "routable" ]; then
    add_servers_from_dhcp
    # The onoffline command tells chronyd to switch all sources to
    # the online (routable) or offline (off) status according to the current network configuration.
    chronyc onoffline > /dev/null 2>&1
fi

exit 0